#ifndef __APP_POOL_H__
#define __APP_POOL_H__

#include "stdio.h"
#include "pthread.h"
#include "mqueue.h"
#include "log/log.h"
#include "stdlib.h"

typedef struct {
    int (*task)(void *arg);
    void *arg;
}TaskPool_t;

/**
 * @brief 初始化线程池
 * 
 * @param thread_num 需要创建的线程数量
 */
int App_Pool_Init(int thread_num);

/**
 * @brief 销毁线程池
 * 
 */
void App_Pool_destroy(void);

/**
 * @brief 注册任务到线程池
 * 
 * @param task 注册的任务函数
 * @param arg 任务函数的参数
 * @return int 返回是否注册成功
 */
int App_Pool_registerTask(int (*task)(void *arg), void *arg);

#endif /* __APP_POOL_H__ */